PREFIX	?=../install
LIBNAME=mysqlite

HOMEDIR=`pwd`/../../
CFLAGS+=-I `pwd`
CFLAGS+=-I ${HOMEDIR}/sqlite/install/include/
all: dynamic_lib static_lib

# dynamic_lib 目标用来编译生成动态库，它是all目标的一个依赖；
dynamic_lib:
	${CC} -shared -fPIC *.c -o lib${LIBNAME}.so ${CFLAGS}
# static_lib 目标用来编译生成静态库，它是all目标的一个依赖；
static_lib:
	${CC} ${CFLAGS} -c *.c
	${AR} -rcs lib${LIBNAME}.a *.o
# install是一个单独的目标，他用来将编译生成的库文件和头文件拷贝到相应的安装路径下。在总目标all下有个动作@makeinstall会执行该目标；
install:
	mkdir -p ${PREFIX}/lib
	mkdir -p ${PREFIX}/include
	cp -rf lib${LIBNAME}.* ${PREFIX}/lib
#   cp lib*.a lib*.so ${PREFIX}/lib
	cp -rf *.h ${PREFIX}/include
#   cp *.h ${PREFIX}/include
# uninstall是一个单独的目标，他用来在安装路径下删除之前安装的库文件和头文件
# 该目标没有被总的目标all依赖或执行，所以默认该目标不会被执行，如果想执行该目标，则可以在Linux命令行下输入makeuninstall来执行
uninstall:
	rm -f ${PREFIX}/lib/lib${LIBNAME}.*
	rm -f ${PREFIX}/include/*.h
# clear是一个单独的目标，他用来将编译生成的object临时文件删除。在总目标all下有个动作@make clear会执行该目标；
clear:
	rm -f *.o
# clean是一个单独的目标，它依赖clear目标，所以先通过clear目标删除所有的object临时文件，之后再删除编译产生的库文件；
# 该目标没有被总的目标all依赖或执行，所以默认该目标不会被执行，如果想执行该目标，则可以在Linux命令行下输入make clean来执行
clean: clear
	rm -f lib${LIBNAME}.*
   #rm -f ${INSTPATH}lib${LIBNAME}.* 
   # rm -f ${INSTPATH}/*.h